//
// Created by wxd on 2025/9/11.
//

#pragma once

#ifndef IOBJECT_H
#define IOBJECT_H

#include <string>
#include "glm/glm.hpp"
#include <memory>

enum class ObjectType {
    OBJECT, MESH
};

class IObject {
public:
    virtual ~IObject() = default;

    // 获取Obj的唯一TraceId
    virtual std::string getTraceId() = 0;

    // 获取Obj对应的model矩阵
    virtual glm::mat4 getModelMatrix() = 0;

    // 获取Obj对应的类型
    virtual ObjectType getType() = 0;

    // 获取Object的名称
    virtual std::string getName() const = 0;
};

#endif //IOBJECT_H
